package com.likou;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * Author: 陈桂明
 * Date: 2025/4/13 0:46
 * Description: q279
 */
public class q279 {
    // public static void main(String[] args) {
    //     System.out.println(Arrays.toString(new int[3]));
    // }

//    public int numSquares(int n) {
//        int[] dp = new int[n + 1];
//        Arrays.fill(dp, n + 1);
//        dp[0] = 0;
//
//        for (int i = 1; i <= n; i++) {
//            for (int j = 1; j * j <= i; j++) {
//                dp[i] = Math.min(dp[i], dp[i - j * j] + 1);
//            }
//        }
//
//        return dp[n];
//
//    }

    public int numSquares(int n) {
        int[] dp = new int[n + 1];
        Arrays.fill(dp, n + 1);
        dp[0] = 0;

        for (int i = 1; i * i <= n; i++) {
            for (int j = i * i; j <= n; j++) {
                dp[j] = Math.min(dp[j], dp[j - i * i] + 1);
            }
        }

        return dp[n];

    }
}
